Resource Allocation Graph
資源割り当てグラフ or リソース割り当てグラフ
https://scrapbox.io/files/67c9a35547812a351750244d.png
各 エッジ(矢印)はプロセスがどのリソースを要求または保持しているかを示す プロセス → リソース: そのプロセスがそのリソースを要求していることを示す
リソース → プロセス: そのリソースがそのプロセスに保持されていることを示す
すべてのリソースを保持するプロセスはグラフから取り除ける(デッドロック検出アルゴリズム)
デッドロック検出アルゴリズム
すべてのリソースを保持するプロセスは他のプロセスに依存せず、今保持しているリソースだけで終了できる
もしそのプロセスが終了すれば、そのプロセスが保持していたリソースが解放される
その後、次に終了できるプロセスを見つけて同じ手順を繰り返す
これにより、段階的にプロセスを削除していくことで、最終的にすべてのプロセスが削除できる場合はデッドロックは発生していない